{% macro escapeText(text, dangerouslyDisableAutoEscaping=false) %}
  {% if dangerouslyDisableAutoEscaping -%}
    {{ text | safe }}
  {%- else -%}
    {{ text }}
  {%- endif %}
{% endmacro %}
{% macro escapeTitle(title, url, dangerouslyDisableAutoEscaping=false, showTitleAsUrl=false) %}
  {% if dangerouslyDisableAutoEscaping %}
    {% if showTitleAsUrl %}
      <a
        href="{{ url }}"
        style="text-decoration:none;
                      color:#ffffff"
        target="_blank"
        >{{ title | safe }}</a
      >
    {% else %}
      {{ title | safe }}
    {% endif %}
  {% else %}
    {% if showTitleAsUrl %}
      <a
        href="{{ url }}"
        style="text-decoration:none;
                      color:#ffffff"
        target="_blank"
        >{{ title }}</a
      >
    {% else %}
      {{ title }}
    {% endif %}
  {% endif %}
{% endmacro %}
{% if loaded %}
  {% if config.showAsList %}
    <ul class="newsfeed-list">
      {% for item in items %}
        <li>
          {% if (config.showSourceTitle and item.sourceTitle) or config.showPublishDate %}
            <div class="newsfeed-source light small dimmed">
              {% if item.sourceTitle and config.showSourceTitle %}
                {{ item.sourceTitle }}{% if config.showPublishDate %},{% else %}:{% endif %}
              {% endif %}
              {% if config.showPublishDate %}{{ item.publishDate }}:{% endif %}
            </div>
          {% endif %}
          <div class="newsfeed-title bright medium light{{ ' no-wrap' if not config.wrapTitle }}">{{ escapeTitle(item.title, item.url, config.dangerouslyDisableAutoEscaping, config.showTitleAsUrl) }}</div>
          {% if config.showDescription %}
            <div class="newsfeed-desc small light{{ ' no-wrap' if not config.wrapDescription }}">
              {% if config.truncDescription %}
                {{ escapeText(item.description | truncate(config.lengthDescription) , config.dangerouslyDisableAutoEscaping) }}
              {% else %}
                {{ escapeText(item.description, config.dangerouslyDisableAutoEscaping) }}
              {% endif %}
            </div>
          {% endif %}
        </li>
      {% endfor %}
    </ul>
  {% else %}
    <div>
      {% if (config.showSourceTitle and sourceTitle) or config.showPublishDate %}
        <div class="newsfeed-source light small dimmed">
          {% if sourceTitle and config.showSourceTitle %}
            {{ escapeText(sourceTitle, config.dangerouslyDisableAutoEscaping) }}{% if config.showPublishDate %},{% else %}:{% endif %}
          {% endif %}
          {% if config.showPublishDate %}{{ publishDate }}:{% endif %}
        </div>
      {% endif %}
      <div class="newsfeed-title bright medium light{{ ' no-wrap' if not config.wrapTitle }}">{{ escapeTitle(title, url, config.dangerouslyDisableAutoEscaping, config.showTitleAsUrl) }}</div>
      {% if config.showDescription %}
        <div class="newsfeed-desc small light{{ ' no-wrap' if not config.wrapDescription }}">
          {% if config.truncDescription %}
            {{ escapeText(description | truncate(config.lengthDescription) , config.dangerouslyDisableAutoEscaping) }}
          {% else %}
            {{ escapeText(description, config.dangerouslyDisableAutoEscaping) }}
          {% endif %}
        </div>
      {% endif %}
    </div>
  {% endif %}
  {% elseif empty %}
  <div class="small dimmed">{{ "NEWSFEED_NO_ITEMS" | translate | safe }}</div>
  {% elseif error %}
  <div class="small dimmed">{{ "MODULE_CONFIG_ERROR" | translate({MODULE_NAME: "Newsfeed", ERROR: error}) | safe }}</div>
{% else %}
  <div class="small dimmed">{{ "LOADING" | translate | safe }}</div>
{% endif %}
